Assignment operators
From Cppreference
Assignment operators modify the value of the object.
| Operator name | Syntax | Overloadable | Prototype examples (for class T) | |
|---|---|---|---|---|
| Inside class definition | Outside class definition | |||
| basic assignment | a = b | Yes | T& T::operator =(const T2 &b); | N/A |
| move assignment (C++0x) | a = rvalue | Yes | T& T::operator =(const T2 &&b); | N/A |
| addition assignment | a += b | Yes | T& T::operator +=(const T2 &b); | T& operator +=(T &a, const T2 &b); |
| subtraction assignment | a -= b | Yes | T& T::operator -=(const T2 &b); | T& operator -=(T &a, const T2 &b); |
| multiplication assignment | a *= b | Yes | T& T::operator *=(const T2 &b); | T& operator *=(T &a, const T2 &b); |
| division assignment | a /= b | Yes | T& T::operator /=(const T2 &b); | T& operator /=(T &a, const T2 &b); |
| modulo assignment | a %= b | Yes | T& T::operator %=(const T2 &b); | T& operator %=(T &a, const T2 &b); |
| bitwise AND assignment | a &= b | Yes | T& T::operator &=(const T2 &b); | T& operator &=(T &a, const T2 &b); |
| bitwise OR assignment | a |= b | Yes | T& T::operator |=(const T2 &b); | T& operator |=(T &a, const T2 &b); |
| bitwise XOR assignment | a ^= b | Yes | T& T::operator ^=(const T2 &b); | T& operator ^=(T &a, const T2 &b); |
| bitwise left shift assignment | a <<= b | Yes | T& T::operator <<=(const T2 &b); | T& operator <<=(T &a, const T2 &b); |
| bitwise right shift assignment | a >>= b | Yes | T& T::operator >>=(const T2 &b); | T& operator >>=(T &a, const T2 &b); |
| ||||
[edit] Explanation
basic assignment operator replaces the contents of the object a with those of b
move assignment operator replaces the contents of the object a with those of b while minimizing copying overhead (no deep copy is performed). It complements the basic assignment operator.
Other assignment operators modify the contents of the object. Usually they are overloaded in classed performing mathematical operations.
[edit] See also
| Common operators | |||||
|---|---|---|---|---|---|
| assignment | increment decrement | arithmetic | comparison | member access | other |
| a = b a = rvalue | ++a --a | a + b a - b | a == b a != b | a[b] *a | a(...) a, b |
| Special operators | |||||
|
static_cast converts one type to another compatible type | |||||